맨위로가기

배시 (유닉스 셸)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

배시(Bash)는 리처드 스톨먼의 불만에서 시작되어 브라이언 폭스가 1988년 코딩을 시작한 유닉스 셸이다. 1989년에 베타 버전이 출시되었으며, 이후 리눅스, macOS, Windows 등 다양한 운영 체제에서 기본 셸로 사용되었다. 2014년에는 셸쇼크로 명명된 보안 취약점이 발견되기도 했다. 배시는 본 셸의 명령 구문을 확장하고, 셸 스크립트 실행을 지원하며, 다양한 기능을 제공한다. 배시의 시작 스크립트는 사용자 환경을 설정하며, 셸의 종류에 따라 다른 파일을 실행한다. 배시는 POSIX 표준을 따르도록 설계되었지만, 배시 고유의 기능을 사용하면 다른 셸과의 호환성 문제가 발생할 수 있다.

더 읽어볼만한 페이지

  • 1989년 소프트웨어 - 한/글
    한/글은 1980년대 후반부터 개발된 대한민국의 대표적인 워드프로세서로, 다양한 운영체제 지원, 정부 전자 문서 시스템에서의 역할, 꾸준한 기능 발전과 사용자 편의성 및 국제 표준을 고려한 업데이트를 통해 발전해왔다.
  • 1989년 소프트웨어 - 마이크로소프트 오피스
    마이크로소프트 오피스는 마이크로소프트에서 개발한 사무용 소프트웨어 제품군으로, 워드 프로세서, 스프레드시트, 프레젠테이션 도구 등 다양한 응용 프로그램을 포함하며, 1989년 맥용으로 처음 출시된 이후 다양한 플랫폼에서 사용 가능하며, 구독형 서비스인 마이크로소프트 365로 전환을 가속화하고 있다.
  • 유닉스 셸 - 유닉스 계열
    유닉스 계열은 유닉스 운영체제의 특징과 설계를 공유하는 운영체제들을 지칭하며, 유전적, 상표, 기능적 유닉스로 분류되고 macOS는 상표 유닉스이자 유전적 유닉스에 해당하며 리눅스는 기능적 유닉스의 대표적인 예이다.
  • 유닉스 셸 - 본 셸
    본 셸은 스티븐 본이 개발하여 1979년 유닉스에 포함된 셸로, 셸 스크립트, 제어 흐름, 변수, 시그널 처리 등의 기능을 제공하며 여러 셸에 영향을 주었고 현재도 널리 사용된다.
  • 텍스트 지향 프로그래밍 언어 - Tcl
    Tcl은 존 오스터하우트가 개발한 명령어 기반의 프로그래밍 언어로, Tk 툴킷과 결합하여 GUI 스크립팅 환경으로 발전했으며, 다양한 운영체제에서 사용 가능하고 C, C++, Java 등 다른 언어와의 인터페이스를 지원한다.
  • 텍스트 지향 프로그래밍 언어 - PHP
    PHP는 라스무스 러도프가 개발한 범용 스크립팅 언어로, 웹 개발에 널리 사용되며 LAMP 아키텍처의 핵심 요소이다.
배시 (유닉스 셸) - [IT 관련 정보]에 관한 문서
기본 정보
Bash 세션 스크린샷
Bash 세션의 스크린샷
개발자Chet Ramey
최초 릴리스1989년 6월 8일
프로그래밍 언어C
운영체제BeOS
Haiku
macOS (GPL-2.0-or-later; 제3자를 통한 GPL-3.0-or-later)
유닉스 계열
윈도우 (GPL-3.0-or-later)
플랫폼GNU
지원 언어다국어 (gettext)
종류셸 (컴퓨팅)
유닉스 셸
명령어 언어
라이선스GPL-3.0-or-later
웹사이트Bash 공식 웹사이트
명칭 유래
어원"Bourne Again Shell"은 유닉스 셸인 "Bourne Shell"의 이름에서 따온 말장난.
특징
기능명령어 대체
반복

2. 역사

브라이언 폭스는 1988년 1월 10일에 배시 개발을 시작했다.[17] 1989년 6월 8일, 폭스는 베타 버전인 .99 버전을 배시로 출시했다.[1] 폭스는 1992년 중반[19]부터 1994년 중반[20]까지 자유 소프트웨어 재단(FSF)에서 배시의 주요 유지 관리자로 활동하다가, 체트 라미(Chet Ramey)에게 책임을 넘겼다.[22]

배시는 리눅스 배포판[27][28]과 Catalina 이전의 애플 macOS[29][30][31]에서 기본 대화형 셸로 사용되며 리눅스 사용자들 사이에서 가장 인기 있는 셸이 되었다. 또한 배시는 Windows[32][33], BeOS[14][15], Haiku[16], Cygwin, MinGW, DJGPP, DOS, Novell NetWare, OpenVMS, ArcaOS, 안드로이드 (운영 체제) 등 다양한 운영 체제로 이식되었다.

2014년 9월, 스테판 샤젤라스(Stéphane Chazelas)는[36] 배시에서 셸쇼크라는 심각한 보안 결함을 발견했다.[37]

2. 1. 개발 배경

리처드 스톨먼자유 소프트웨어 재단(FSF)은 GNU 운영체제를 위한 자유 소프트웨어 셸이 필요하다고 생각했다. 기존 본 셸(sh)은 자유 소프트웨어가 아니었기 때문에, FSF는 본 셸을 대체하고 기능을 확장한 새로운 셸 개발을 추진했다.[104][114] 브라이언 폭스는 1988년 1월 10일에 리처드 스톨먼의 제안으로 Bash 코딩을 시작했다.[143][17][113] 이전 개발자의 진척이 부진하여 어려움을 겪었으나,[141][1][104] 폭스는 FSF의 지원을 받아 개발에 매진했다.[1][18][104][114] 1989년 6월 8일, Bash는 베타 버전(.99)으로 처음 공개되었다.[1][106]

2. 2. 주요 개발자 및 버전

리처드 스톨먼이 이전 개발자의 진척 부진에 불만을 느껴, 브라이언 폭스는 1988년 1월 10일 Bash 코딩을 시작했다.[143] 자유 소프트웨어 재단(FSF)의 직원이었던 폭스는 1989년 6월 8일에 베타 버전인 .99 버전을 출시했다.[1] 1992년 중반[19]부터 1994년 중반[20]까지 FSF에서 주요 유지 관리자로 활동했으며, 이후 책임은 쳇 라미(Chet Ramey)에게 이전되었다.[22]

이후 배시는 리눅스 사용자들 사이에서 가장 인기 있는 셸이 되었고, 다양한 리눅스 배포판[27][28]과 Catalina(10.15) 이전의 애플 macOS 릴리스에서 기본 대화형 셸이 되었다.[29][30][31]

2014년 9월에는 스테판 샤젤라스(Stéphane Chazelas)가[36] 배시에서 심각한 보안 결함인 셸쇼크를 발견하여 긴급 업데이트가 이루어졌다.[37]

3. 기능

Bash는 본 셸(sh) 명령어 문법의 상위 집합으로, 대부분의 sh 스크립트를 수정 없이 실행할 수 있다. KornShell(ksh) 및 C 셸(csh)의 유용한 기능(예: 명령어 히스토리, 디렉터리 스택, 작업 제어)을 통합하여 사용자 편의성을 높였다.[45] 또한 명령행 편집, 명령줄 완성(자동 완성, 탭 완성),[46] 정규 표현식 일치 등 다양한 고급 기능을 제공한다. 연관 배열,[91] 프로세스 치환, 확장된 문자열 조작 등 Bash만의 고유한 기능도 있다.

Bash는 다음과 같은 다양한 기능을 제공한다.[38]


  • 함수 호출
  • 대화형 셸, 비대화형 셸, 로그인 셸
  • 명령줄 인터페이스
  • 종료 상태 코드
  • 제어 구조
  • 조건 테스트: `if`, `case`, `select`, 논리 AND (`&&`) 및 OR (`||`)
  • 반복: `for`, `while`, `until` 루프, 산술 C 스타일 루프 (`for ((`)
  • 파일 유형, 문자열 값 및 정수 값 테스트를 위한 구문
  • 기존의 단일 대괄호 테스트: `[`
  • 최신 이중 대괄호 테스트: `...` (확장된 정규 표현식 및 extglob 일치, `<` 및 `>`를 사용한 사전식 정렬 포함)
  • UNIX 스타일 파이프라인: `|`
  • 서브셸: `( ... )`
  • `trap` 내장 명령을 사용한 프로세스 간 통신 수단으로의 신호 전송
  • 비동기 실행: `job_spec &`
  • 이식성 모드에서 POSIX 표준에 따라 명령을 해석할 수 있는 셸
  • 명령 구문 분석
  • 주석 무시 (Bourne 스타일 `#` 해시태그 주석 및 Thompson 스타일 `:` 콜론 주석)
  • 명령은 한 줄에 하나씩 구문 분석 (제어 구조 적용, 백슬래시 `\` 이스케이프도 줄 끝에서 적용)
  • 인용 규칙에 따라 단어(단어 분할)로 분할 (ANSI-C 인용 `$''...'` 포함)
  • 결과 문자열에 대해 다음 순서로 일곱 종류의 확장 수행

1. 중괄호 확장 `kernel{-headers}`[39]

2. 물결표 확장 `~`

3. 왼쪽에서 오른쪽 순서로:

  • 매개변수변수 확장 (`$foo` 또는 `${bar}`), 동적으로 범위가 지정된 변수, 무제한 크기의 인덱싱된 배열, `declare -A`를 통한 연관 배열, 외부 유틸리티보다 일부 작업을 더 빠르게 수행할 수 있는 확장 구문(예: 패턴 대체, 일치하는 접두사 또는 접미사 패턴 제거, 배열 키 인쇄, Null 또는 Unset인 경우 오류 표시 등) 포함
  • 명령 치환: `$( ... )`
  • 프로세스 치환(시스템에서 지원하는 경우): `<()` 또는 `>()`
  • 산술 확장: `(( ... ))` 또는 `$(( ... ))` (2에서 64까지의 모든 기수에서 정수 산술은 가능하지만, 부동 소수점 산술은 셸 자체 내에서 사용할 수 없음)

4. 단어 분할 (다시)

5. 경로 이름 확장 (셸 스타일 글로빙 및 `*`, `?`, `[...]`를 사용한 패턴 일치)

6. 인용 제거

  • 표준 입력, 표준 출력 및 표준 오류 데이터 스트림의 리디렉션 수행 (파일 쓰기 `>`, 추가 `>>`, Here 문서 `<<`, Here 문자열 `<<<`, 셸의 "noclobber" 설정이 활성화된 경우 파일 덮어쓰기를 강제할 수 있는 리디렉션 연산자 `>|` 포함)
  • 명령 이름 조회
  • 셸 내부에 있는 명령 (셸 별칭, 셸 예약어, 셸 함수, 셸 내장 명령)
  • 셸 외부의 명령 (UNIX 스타일 프로그램(예: `ls` 또는 `ln`), 실행 가능한 명령을 포함하는 셸 스크립트 파일)
  • 결과 문자열이 명령으로 실행
  • 구성 가능한 실행 환경
  • `~/.bashrc` 및 ~/.profile과 같은 셸 및 세션 시작 파일 (dotfile)
  • 셸 동작을 변경하는 설정 (`set` 내장) 및 셸 옵션 (`shopt` 내장)
  • 대화형 호출로만
  • 무제한 크기 명령 기록
  • 작업 및 작업 제어
  • 디렉터리 스택 (`pushd` 및 `popd` 내장 참조)
  • 탭 완성
  • 구성 가능한 프롬프트
  • GNU readline을 사용한 명령줄 편집
  • 디버깅 목적의 경량 로깅 (xtrace) 및 기타 경량 디버깅 옵션 (errexit, noexec, nounset, pipefail 등)
  • 셸 호환 모드: bash 5.1은 bash 4.2 등으로 작동 가능
  • 문서
  • 내장 `help` 명령
  • man 페이지
  • GNU 매뉴얼과 동일한 info 페이지
  • 비공식 지원 방법
  • libera.chat #bash의 IRC
  • https://www.gnu.org/software/bash/의 메일링 리스트


Bash의 키워드, 구문, 동적으로 범위가 지정된 변수 및 기타 기본 언어 기능은 모두 sh에서 복사되었다. 다른 기능(예: 기록)은 csh 및 ksh에서 복사되었다.

3. 1. 시작 스크립트

배시는 시작할 때 다양한 점(.) 파일 내의 명령들을 실행하여 사용자 환경을 설정한다. 배시 셸 스크립트와는 다르게, 점 파일은 일반적으로 실행 권한이 활성화되어 있지 않고 #!/bin/bash와 같은 인터프리터 지시자(셔뱅)도 없다.[134]

배시는 셸의 종류에 따라 다른 시작 파일들을 실행한다.

조건순서
대화형 비로그인 셸로 시작Bash는 /bash.bashrc를 읽고 실행한 다음, (존재하는 경우) ~/.bashrc를 읽고 실행한다. 이는 --norc 옵션을 사용함으로써 금지할 수 있다. --rcfile 파일 옵션에 의해, ~/.bashrc 대신 파일에서 명령을 읽고 실행하도록 Bash에 강제할 수 있다.
대화형 로그인 셸로 시작Bash는 (존재하는 경우) /etc/profile (파일명을 /etc/bash.bashrc로 개명되는 경우가 많음)를 읽고 실행한다. 이 파일을 읽은 후, ~/.bash_profile, ~/.bash_login, 및 ~/.profile을 이 순서대로 조사하여, 존재하고 읽을 수 있는 것 중 첫 번째 것을 읽고 실행한다.
로그인 셸을 종료한 경우Bash는 (존재하는 경우) ~/.bash_logout을 읽고 실행한다.



Bash의 각 요소는 본 셸 및 C 셸에서 파생되었다. 이 때문에 제한적이기는 하지만, 시동 파일을 본 셸과 공유할 수 있으며, C 셸 사용자에게 친숙한 몇 가지 시동 시퀀스를 제공한다.[134]

항목차이점
상속 가능한 환경 변수 설정본 셸은 하위 프로세스로 생성된 후 상속할 환경 변수를 설정하기 위해 로그인 시 ~/.profile을 사용한다. Bash에서도, Bash 고유의 ~/.bash_profile이나 ~/.bash_login에 다음 행을 기술하여, 이들 파일에서 명시적으로 ~/.profile을 실행함으로써 본 셸과의 호환성을 유지할 수 있다. Bash 고유의 구문을 ~/.profile에 기술하지 않음으로써, 본 셸과의 하위 호환성을 유지할 수 있다.
별칭과 함수C 셸에서 유래한 별칭이라는 기능이 존재하지만, 그 대부분을 대체하는 본 셸에서 유래한 함수라는 기능은 별칭보다 더 일반적이다. 이 두 기능은 일반적으로 로그인 셸에서 상속할 수 없으며, 로그인 셸에 의해 생성된 하위 셸마다 재정의해야 했다. 이 문제의 대처에 이용 가능한 환경 변수 ENV가 존재하지만, C 셸과 Bash에서는 이 문제에 직접적으로 초점을 맞춘 하위 셸별 시동 파일을 지원한다. Bash에서는 ~/.bashrc가 대화형 하위 셸을 위해 호출된다.[134] ~/.bashrc에 있는 사용자 정의 함수가 로그인 셸에서도 필요한 경우, 다음 행을 ~/.bash_login에 필요한 환경 변수 설정 후에 기술한다:
로그인 시 또는 로그아웃 시에만 실행되는 명령어C 셸은 최초 로그인 시에만 실행되는 작업을 위한 ~/.login 파일을 지원한다. 이러한 작업에는 시스템 로드, 디스크 상태, 전자 메일 도착 여부 등의 표시, 로그인 시간 로깅 등이 있다. 본 셸은 ~/.profile로 이 파일을 모방할 수 있지만, 파일 이름은 미리 정의되어 있지 않다. C 셸 모델과 유사한 의미를 실현하기 위해, ~/.bash_profile에서는 환경 설정 및 함수 설정 후에 다음과 같이 기술할 수 있다:


3. 2. 보안 문제

2014년 9월, 유닉스/리눅스 전문가인 스테판 샤젤라스(Stéphane Chazelas)는 배시(Bash)에서 보안 결함을 발견했다.[36] 9월 24일에 처음 공개된 이 버그는 셸쇼크로 명명되었으며, 배시를 사용하는 CGI 스크립트가 취약해져 임의 코드 실행을 가능하게 할 수 있으므로 심각한 것으로 간주되었다. 이 버그는 배시가 환경 변수를 통해 함수 정의를 서브 셸로 전달하는 방식과 관련이 있었다.[37]

1989년 8월 버전 1.03부터 존재해온 보안 구멍이 2014년 9월 초에 발견되었고, 이는 셸쇼크로 명명되었으며, 곧바로 공격의 범위를 인터넷 전반으로 확대시켰다.[85][86][87] 이 버그들을 수정하기 위한 패치는 버그가 확인된 직후에 배포되었다.

4. 이식성

`--posix` 옵션을 사용하여 배시를 실행하거나 스크립트에서 `set -o posix`를 사용하면, 배시는 POSIX 1003.2 표준을 매우 엄격하게 준수하게 된다.[53] 따라서 이식성을 고려한 배시 셸 스크립트는 적어도 POSIX 셸 표준을 고려해야 한다.[53]

하지만, 코드 조각이 POSIX에서 찾아볼 수 없는 배시 기능을 사용하면 "배시즘"이라고 하며 이식 가능한 사용에 문제가 된다.[56] 데비안의 `checkbashisms` 및 Vidar Holen의 `shellcheck`를 사용하여 스크립트에 이러한 배시즘이 포함되어 있지 않은지 확인할 수 있다.[56][57]

POSIX에서 찾아볼 수 없는 배시 기능은 다음과 같다:[53][54]

배시 기능
특정 확장된 호출 옵션
중괄호 확장
배열 및 연관 배열
이중 대괄호 `...` 확장 테스트 구문과 정규식 일치
이중 괄호 산술 연산 구문 (`(( ... ))`만 해당, `$(( ... ))`는 POSIX)
매개변수 확장에서 특정 문자열 조작 연산
범위 변수에 대한 `local`
프로세스 치환
배시 전용 내장 명령어
공동 프로세스
`$EPOCHSECONDS` 및 `$EPOCHREALTIME` 변수[55]



어떤 기능을 사용할 수 있는지는 대상 셸에 따라 다르다. 데비안 정책은 스크립트에서 일부 확장을 허용하지만(dash 셸에 있기 때문),[54] autoconf의 `configure`와 같이 POSIX 이전의 본 셸을 지원하려는 스크립트는 사용할 수 있는 기능이 훨씬 더 제한적이다.[58]

브레이스 전개는 얼터네이션이라고도 불리며, C 셸에서 가져온 기능이다.[133] 가능한 조합의 세트를 생성하며, 생성된 결과가 파일로 존재할 필요는 없다. 전개된 각 문자열 결과는 정렬되지 않고, 저장된 순서대로 왼쪽에서 오른쪽으로 나열된다. 예를 들면 다음과 같다.

```console

$ echo a{p,c,d,b}e

ape ace ade abe

$ echo {a,b,c}{d,e,f}

ad ae af bd be bf cd ce cf

```

본 셸에서는 배시와 같은 출력을 반환하지 않으므로, 이식성을 위해 셸 스크립트에서 브레이스 전개를 사용하지 않아야 한다.

```console

$ # 전통적인 셸은 Bash와 같은 출력을 반환하지 않는다.

$ /bin/sh -c 'echo a{p,c,d,b}e'

a{p,c,d,b}e

참조

[1] 웹사이트 Free Software Foundation — working together for free software — Front Page https://www.fsf.org/ 2024-05-19
[2] 웹사이트 GNU in a Nutshell https://www.gnu.org/[...] 2024-05-19
[3] 웹사이트 GNU's Bulletin, vol. 1 no. 7, June, 1989 :: GNU's Who https://www.gnu.org/[...] 2024-05-19
[4] 웹사이트 GNU Software https://www.gnu.org/[...] 2024-05-19
[5] 웹사이트 Bourne shell https://www.ibm.com/[...] 2024-05-19
[6] 뉴스그룹 GNU + BSD = ? https://groups.googl[...] 2021-12-28
[7] 간행물 The A-Z of Programming Languages: BASH/Bourne-Again Shell https://web.archive.[...] 2011-03-21
[8] 뉴스그룹 Bash is in beta release! https://groups.googl[...] 2010-10-28
[9] 웹사이트 I Almost Get a Linux Editor and Compiler http://www.drdobbs.c[...] 2020-09-12
[10] 웹사이트 About the GNU Project https://www.gnu.org/[...] Free Software Foundation 2011-03-13
[11] 간행물 Bourne-again Shell https://web.archive.[...] 2011-03-13
[12] 웹사이트 comp.os.minix https://groups.googl[...] 2009-09-06
[13] 웹사이트 Bash FAQ, version 4.14 https://web.archive.[...] 2016-04-09
[14] 웹사이트 A desktop alternative https://www.forbes.c[...]
[15] 웹사이트 Appendix A: Using the BeOS Command Line Shell http://testou.free.f[...]
[16] 웹사이트 Terminal https://www.haiku-os[...]
[17] 간행물 shell.c http://ftp.gnu.org/g[...] Free Software Foundation 2010-11-01
[18] 웹사이트 About the GNU Project https://www.gnu.org/[...] Free Software Foundation 2011-03-21
[19] 뉴스그룹 January 1993 GNU's Bulletin https://groups.googl[...] 1993-04-20
[20] 웹사이트 Bash - the GNU shell (Reflections and Lessons Learned) http://www.linuxjour[...] 2008-11-13
[21] 간행물 Dates in your Computerworld interview https://www.scribd.c[...] 2010-10-31
[22] 뉴스 The A-Z of Programming Languages: BASH/Bourne-Again Shell http://www.computerw[...] 2022-03-01
[23] 웹사이트 The GNU Bourne-Again Shell https://tiswww.case.[...] Case Western Reserve University 2022-03-01
[24] 뉴스그룹 Bash 0.99 fixes & improvements https://groups.googl[...] 2010-11-01
[25] 뉴스그룹 Some bash-1.02 fixes https://groups.googl[...] 2010-10-30
[26] 뉴스그룹 Availability of bash 1.05 https://groups.googl[...] 2010-10-30
[27] 서적 CompTIA Linux+ Powered by Linux Professional Institute Study Guide: Exam LX0-103 and Exam LX0-104 https://books.google[...] John Wiley & Sons, Inc. 2016-06-06
[28] 서적 Mastering Linux https://books.google[...] John Wiley & Sons, Inc. 2016-06-06
[29] 서적 Beginning Shell Scripting https://books.google[...] John Wiley & Sons, Inc. 2016-06-06
[30] 웹사이트 Use zsh as the default shell on your Mac - Apple Support https://support.appl[...] 2019-07-01
[31] 웹사이트 Apple replaces bash with zsh as the default shell in macOS Catalina https://www.theverge[...] 2019-06-13
[32] 웹사이트 Missing source code - GPL compliance? · Issue #107 · Microsoft/WSL https://github.com/M[...] 2016-07-08
[33] 웹사이트 GNU Bash http://www.softpedia[...] SoftNews 2016-04-09
[34] 웹사이트 Installing the new GNU packages https://sourceforge.[...] 2020-09-04
[35] 웹사이트 Compatibility Subsystems https://www.arcanoae[...] 2020-09-04
[36] 뉴스 Linux bash exit status and how to set exit status in bash - Techolac https://www.techolac[...] 2017-06-10
[37] 웹사이트 Bash specially-crafted environment variables code injection attack https://securityblog[...] Red Hat 2014-09-24
[38] 웹사이트 Command Execution Environment (Bash Reference Manual) https://www.gnu.org/[...]
[39] 웹사이트 Brace Expansion (Bash Reference Manual) https://www.gnu.org/[...]
[40] 웹사이트 Bash Reference Manual https://www.gnu.org/[...]
[41] 웹사이트 Debugging Bash scripts http://tldp.org/LDP/[...]
[42] 웹사이트 The Set Builtin (Bash Reference Manual) https://www.gnu.org/[...]
[43] 웹사이트 Bash changes [Bash Hackers Wiki (DEV 20200708T2203)] https://wiki-dev.bas[...]
[44] 웹사이트 Bourne Shell Builtins (Bash Reference Manual) https://www.gnu.org/[...]
[45] 웹사이트 Bash Reference Manual https://www.gnu.org/[...]
[46] 웹사이트 Working more productively with bash 2.x/3.x http://www.caliban.o[...]
[47] 간행물 The GNU Bash Reference Manual, for Bash, Version 4.1 https://www.gnu.org/[...] 2009-12-23
[48] 웹사이트 Advanced Bash-Scripting Guide http://www.tldp.org/[...]
[49] 웹사이트 Bash, version 4 http://tldp.org/LDP/[...]
[50] 웹사이트 Arrays (Bash Reference Manual) https://www.gnu.org/[...]
[51] 웹사이트 macos - Update bash to version 4.0 on OSX https://apple.stacke[...]
[52] 웹사이트 Why does macOS Catalina use Zsh instead of Bash? Licensing https://thenextweb.c[...] 2019-06-04
[53] 웹사이트 Portability Issues http://tldp.org/LDP/[...] ibiblio.org
[54] 웹사이트 10. Files https://www.debian.o[...]
[55] 웹사이트 How To Format Date And Time In Linux, MacOS, And Bash? https://www.shell-ti[...]
[56] ManKier checkbashisms
[57] ManKier shellcheck
[58] 웹사이트 Portable Shell https://www.gnu.org/[...]
[59] 웹사이트 BASH Help - A Bash Tutorial http://www.hypexr.or[...] Hypexr.org 2012-10-05
[60] 웹사이트 Bash Reference Manual https://www.gnu.org/[...]
[61] Webarchive bashbug(1) http://linux.die.net[...] 2018-10-02
[62] Webarchive Linux / Unix Command: bashbug https://developer.ap[...] 2014-10-06
[63] 웹사이트 Bash Reference Manual https://tiswww.case.[...]
[64] 웹사이트 Working more productively with bash 2.x/3.x http://www.caliban.o[...]
[65] 웹사이트 Index of /gnu/bash https://ftp.swin.edu[...]
[66] 웹사이트 An Introduction to Programmable Completion https://tldp.org/LDP[...]
[67] 웹사이트 Definition of BORN-AGAIN https://www.merriam-[...]
[68] 웹사이트 Bash - GNU Project - Free Software Foundation https://www.gnu.org/[...]
[69] 웹사이트 What is Bash? (Bash Reference Manual) https://www.gnu.org/[...]
[70] 웹사이트 Definition of BASH https://www.merriam-[...] 2024-01-05
[71] 웹사이트 Irony Definition, Common Examples, and Significance in Literature https://literarydevi[...] 2020-08-31
[72] 웹사이트 Innuendo - Examples and Definition of Innuendo https://literarydevi[...] 2014-01-02
[73] 웹사이트 BashGuide/Arrays - Greg's Wiki https://mywiki.woole[...] 2024-01-10
[74] 웹사이트 CommandSubstitution - Greg's Wiki https://mywiki.woole[...] 2024-01-10
[75] 웹사이트 BashGuide/TestsAndConditionals - Greg's Wiki https://mywiki.woole[...] 2024-01-10
[76] 웹사이트 CHANGES - bash.git - bash https://git.savannah[...] 2024-01-10
[77] 웹사이트 Bash changes [Bash Hackers Wiki] https://wiki.bash-ha[...] 2021-02-14
[78] 웹사이트 Obsolete and deprecated syntax [Bash Hackers Wiki] https://wiki.bash-ha[...] 2024-01-10
[79] 웹사이트 The Open Group Base Specifications Issue 7, 2018 edition https://pubs.opengro[...]
[80] 웹사이트 BASH(1) Manual Page https://tiswww.case.[...]
[81] 웹사이트 bash.0\doc - bash.git - bash https://git.savannah[...]
[82] 웹사이트 The GNU Bourne-Again Shell https://tiswww.case.[...]
[83] 웹사이트 Frequently Asked Questions https://tiswww.case.[...]
[84] 웹사이트 oss-sec mailing list archives http://seclists.org/[...] 2014-10-04
[85] 웹사이트 Patch Bash NOW: 'Shell Shock' bug blasts OS X, Linux systems wide open https://www.theregis[...] 2014-09-25
[86] 뉴스 Security Experts Expect 'Shellshock' Software Bug in Bash to Be Significant https://www.nytimes.[...] 2014-09-25
[87] 웹사이트 Shellshock makes Heartbleed look insignificant https://www.zdnet.co[...] 2014-09-29
[88] 웹사이트 README file https://www.gnu.org/[...] 2014-04-16
[89] 웹사이트 bash-1.11 http://www.oldlinux.[...] 2021-06-09
[90] 웹사이트 bash-1.05.tar http://www.oldlinux.[...]
[91] 웹사이트 BashFAQ/061 - Greg's Wiki https://mywiki.woole[...] 2021-03-01
[92] 웹사이트 Is there a way to download the presumably initial bash source bash-0.99? https://unix.stackex[...]
[93] 웹사이트 How to install Bash shell command-line tool on Windows 10 http://www.windowsce[...] 2016-11-20
[94] 웹사이트 How to Install the Windows Subsystem for Linux on Windows 11 https://www.howtogee[...] 2022-10-12
[95] 웹사이트 User Environment Feature Changes https://docs.oracle.[...] Oracle 2018-06-08
[96] 웹사이트 github version history NEWS v5.0 https://github.com/b[...] 2021-03-01
[97] 웹사이트 Bash changes [Bash Hackers Wiki] https://wiki.bash-ha[...] 2019-11-25
[98] 웹사이트 Bash-5.0 release available https://lists.gnu.or[...] 2021-03-01
[99] 웹사이트 Bash FAQ ftp://ftp.cwru.edu/p[...]
[100] 웹사이트 macos - Why does Apple ship bash 3.2? - Ask Different https://apple.stacke[...]
[101] 웹사이트 Missing source code - GPL compliance? · Issue #107 · microsoft/WSL · GitHub https://github.com/M[...]
[102] 웹사이트 GNU Bash http://www.softpedia[...] SoftNews 2016-04-09
[103] 웹사이트 README file https://www.gnu.org/[...] 2017-10-21
[104] 뉴스그룹 GNU + BSD = ? https://groups.googl[...] 2011-03-22
[105] 간행물 The A-Z of Programming Languages: BASH/Bourne-Again Shell http://www.computerw[...] 2011-03-21
[106] 뉴스그룹 Bash is in beta release! https://groups.googl[...] 2010-10-28
[107] 웹사이트 How to install Bash shell command-line tool on Windows 10 http://www.windowsce[...]
[108] 간행물 C Programming Dr. Dobb's Journal 2001-07-01
[109] 웹사이트 About the GNU Project https://www.gnu.org/[...] Free Software Foundation 2011-03-13
[110] Citation Bourne-again Shell http://www.markus-ga[...] 2011-03-13
[111] 서적 LINUX: Preparación para la certificación LPIC-1 : Exámenes LPI 101 y LPI 102 https://books.google[...] Editions ENI 2017-05-27
[112] 서적 Il progetto GNU https://books.google[...] Apogee Publisher 2017-05-27
[113] Citation shell.c http://ftp.gnu.org/g[...] フリーソフトウェア財団 1996-08-29
[114] 웹사이트 About the GNU Project https://www.gnu.org/[...] Free Software Foundation 2011-03-21
[115] 뉴스그룹 January 1993 GNU's Bulletin https://groups.googl[...] 2010-10-28
[116] Citation Dates in your Computerworld interview https://www.scribd.c[...] 2010-10-31
[117] 웹사이트 Bash - the GNU shell (Reflections and Lessons Learned) http://www.linuxjour[...] 2008-11-13
[118] 뉴스그룹 Bash 0.99 fixes & improvements https://groups.googl[...] 2010-11-01
[119] 뉴스그룹 Some bash-1.02 fixes https://groups.googl[...] 2010-10-30
[120] 뉴스그룹 Availability of bash 1.05 https://groups.googl[...] 2010-10-30
[121] 서적 Beginning Shell Scripting https://books.google[...] John Wiley & Sons, Inc. 2016-06-06
[122] 서적 Mastering Linux https://books.google[...] John Wiley & Sons, Inc. 2016-06-06
[123] 서적 CompTIA Linux+ Powered by Linux Professional Institute Study Guide: Exam LX0-103 and Exam LX0-104 https://books.google[...] John Wiley & Sons, Inc. 2016-06-06
[124] 웹사이트 https://www.linkedin[...]
[125] CVE CVE - CVE-2014-6271 https://cve.mitre.or[...]
[126] CVE CVE - CVE-2014-6277 https://cve.mitre.or[...]
[127] CVE CVE - CVE-2014-7169 https://cve.mitre.or[...]
[128] 웹사이트 Bash specially-crafted environment variables code injection attack https://securityblog[...] レッドハット 2017-10-21
[129] Citation The GNU Bash Reference Manual, for Bash, Version 4.1 https://www.gnu.org/[...] 2010-10-26
[130] 웹사이트 Advanced Bash-Scripting Guide http://www.tldp.org/[...] 2017-03-05
[131] 문서 The syntax matches that shown on the regex(7) manページ.
[132] 문서 The shell provides associative array variables, with the appropriate support to create, delete, assign values to, and expand them. https://tiswww.case.[...]
[133] 문서 C shellとBashのブレース展開は要素がひとつの時の挙動が異なる。
[134] 문서 C shellでは ~/.cshrc がインタラクティブサブシェルのために呼び出される。また、tcsh では ~/.tcshrc が、その後 ~/.cshrc がインタラクティブサブシェルのために呼び出される。
[135] 웹사이트 Portability Issues http://tldp.org/LDP/[...] ibiblio.org 2017-10-21
[136] 웹사이트 https://linux.die.ne[...]
[137] 웹사이트 BASH Help - A Bash Tutorial http://www.hypexr.or[...] Hypexr.org 2013-07-21
[138] 웹사이트 bashbug(1) http://linux.die.net[...] die.net
[139] 웹사이트 Linux / Unix Command: bashbug https://developer.ap[...] apple.com
[140] 웹인용 README file http://www.gnu.org/s[...]
[141] 웹인용 GNU + BSD = ? http://groups.google[...] comp.unix.questions 1988-02-10
[142] 저널 The A-Z of Programming Languages: BASH/Bourne-Again Shell http://www.computerw[...] 2008-05-30
[143] 인용 shell.c http://ftp.gnu.org/g[...] Free Software Foundation 1996-08-29



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com